home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / SCHEX.z / SCHEX
Text File  |  1996-03-14  |  4KB  |  199 lines

  1.  
  2.  
  3.  
  4. SSSSCCCCHHHHEEEEXXXX((((3333FFFF))))                                                            SSSSCCCCHHHHEEEEXXXX((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SCHEX   - SCHEX updates the Cholesky factorization
  10.  
  11.         A = TRANS(R)*R
  12.  
  13.      of a positive definite matrix A of order P under diagonal permutations of
  14.      the form
  15.  
  16.         TRANS(E)*A*E
  17.  
  18.      where E is a permutation matrix.  Specifically, given an upper triangular
  19.      matrix R and a permutation matrix E (which is specified by K, L, and
  20.      JOB), SCHEX determines an orthogonal matrix U such that
  21.  
  22.         U*R*E = RR,
  23.  
  24.      where RR is upper triangular.  At the users option, the transformation U
  25.      will be multiplied into the array Z.  If A = TRANS(X)*X, so that R is the
  26.      triangular part of the QR factorization of X, then RR is the triangular
  27.      part of the QR factorization of X*E, i.e., X with its columns permuted.
  28.      For a less terse description of what SCHEX does and how it may be
  29.      applied, see the LINPACK guide.
  30.  
  31.      The matrix Q is determined as the product U(L-K)*...*U(1) of plane
  32.      rotations of the form
  33.  
  34.         (    C(I)       S(I) )
  35.         (                    ) ,
  36.         (    -S(I)      C(I) )
  37.  
  38.      where C(I) is real.  The rows these rotations operate on are described
  39.      below.
  40.  
  41.      There are two types of permutations, which are determined by the value of
  42.      JOB.
  43.  
  44.      1. Right circular shift (JOB = 1).
  45.  
  46.         The columns are rearranged in the following order.
  47.  
  48.         1,...,K-1,L,K,K+1,...,L-1,L+1,...,P.
  49.  
  50.         U is the product of L-K rotations U(I), where U(I)
  51.         acts in the (L-I,L-I+1)-plane.
  52.  
  53.      2. Left circular shift (JOB = 2).
  54.         The columns are rearranged in the following order
  55.  
  56.         1,...,K-1,K+1,K+2,...,L,K,L+1,...,P.
  57.  
  58.         U is the product of L-K rotations U(I), where U(I)
  59.         acts in the (K+I-1,K+I)-plane.
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSCCCCHHHHEEEEXXXX((((3333FFFF))))                                                            SSSSCCCCHHHHEEEEXXXX((((3333FFFF))))
  71.  
  72.  
  73.  
  74. SSSSYYYYNNNNOOOOPPPPSSSSYYYYSSSS
  75.       SUBROUTINE SCHEX(R,LDR,P,K,L,Z,LDZ,NZ,C,S,JOB)
  76.  
  77. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  78.      On Entry
  79.  
  80.      RRRR REAL(LDR,P), where LDR .GE. P.
  81.         R contains the upper triangular factor
  82.         that is to be updated.  Elements of R
  83.         below the diagonal are not referenced.
  84.  
  85.      LLLLDDDDRRRR INTEGER.
  86.         LDR is the leading dimension of the array R.
  87.  
  88.      PPPP INTEGER.
  89.         P is the order of the matrix R.
  90.  
  91.      KKKK INTEGER.
  92.         K is the first column to be permuted.
  93.  
  94.      LLLL INTEGER.
  95.         L is the last column to be permuted.
  96.         L must be strictly greater than K.
  97.  
  98.      ZZZZ REAL(LDZ,NZ), where LDZ.GE.P.
  99.         Z is an array of NZ P-vectors into which the
  100.         transformation U is multiplied.  Z is
  101.         not referenced if NZ = 0.
  102.  
  103.      LLLLDDDDZZZZ INTEGER.
  104.         LDZ is the leading dimension of the array Z.
  105.  
  106.      NNNNZZZZ INTEGER.
  107.         NZ is the number of columns of the matrix Z.
  108.  
  109.      JJJJOOOOBBBB INTEGER.
  110.         JOB determines the type of permutation.
  111.         JOB = 1  right circular shift.
  112.         JOB = 2  left circular shift.  On Return
  113.  
  114.      RRRR contains the updated factor.
  115.  
  116.      ZZZZ contains the updated matrix Z.
  117.  
  118.      CCCC REAL(P).
  119.         C contains the cosines of the transforming rotations.
  120.  
  121.      SSSS REAL(P).
  122.         S contains the sines of the transforming rotations.  LINPACK.  This
  123.      version dated 08/14/78 .  G. W. Stewart, University of Maryland, Argonne
  124.      National Lab.
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. SSSSCCCCHHHHEEEEXXXX((((3333FFFF))))                                                            SSSSCCCCHHHHEEEEXXXX((((3333FFFF))))
  137.  
  138.  
  139.  
  140.      SSSSCCCCHHHHEEEEXXXX uses the following functions and subroutines. BLAS SROTG Fortran
  141.      MIN0
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.